/*     */
package org.jeecg.modules.online.cgform.service.impl;
/*     */
/*     */

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.language.entity.ConfigLanguage;
import org.jeecg.modules.online.cgform.entity.OnlCgformButton;
import org.jeecg.modules.online.cgform.entity.OnlCgformEnhanceJs;
import org.jeecg.modules.online.cgform.entity.OnlCgformField;
import org.jeecg.modules.online.cgform.entity.OnlCgformHead;
import org.jeecg.modules.online.cgform.model.c;
import org.jeecg.modules.online.cgform.model.d;
import org.jeecg.modules.online.cgform.model.e;
import org.jeecg.modules.online.cgform.model.f;
import org.jeecg.modules.online.cgform.model.*;
import org.jeecg.modules.online.cgform.service.IOnlCgformFieldService;
import org.jeecg.modules.online.cgform.service.IOnlCgformHeadService;
import org.jeecg.modules.online.cgform.service.IOnlineService;
import org.jeecg.modules.online.cgform.util.EnhanceJsUtil;
import org.jeecg.modules.online.cgform.util.b;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
/*     */
@Service("onlineService")
/*     */ public class g
        /*     */ implements IOnlineService
        /*     */ {
    /*     */
    @Autowired
    /*     */ private IOnlCgformFieldService onlCgformFieldService;
    /*     */
    @Autowired
    /*     */ private IOnlCgformHeadService onlCgformHeadService;
    /*     */
    @Autowired
    /*     */ private ISysBaseAPI sysBaseAPI;

    /*     */
    /*     */
    public d queryOnlineConfig(OnlCgformHead head) {
        /*  44 */
        String str = head.getId();
        /*     */
        /*  46 */
        List<OnlCgformField> list = a(str);
        /*     */
        /*  48 */
        List list1 = this.onlCgformFieldService.selectOnlineHideColumns(head.getTableName());
        /*     */
        /*  50 */
        ArrayList<c> arrayList = new ArrayList();
        /*     */
        /*  52 */
        HashMap hashMap = new HashMap<>();
        /*     */
        /*  54 */
        ArrayList<a> arrayList1 = new ArrayList();
        /*     */
        /*  56 */
        ArrayList<e> arrayList2 = new ArrayList();
        /*     */
        /*  58 */
        for (OnlCgformField onlCgformField : list) {
            /*  59 */
            String str1 = onlCgformField.getDbFieldName();
            /*     */
            /*     */
            /*  62 */
            String str2 = onlCgformField.getMainTable();
            /*  63 */
            String str3 = onlCgformField.getMainField();
            /*  64 */
            if (oConvertUtils.isNotEmpty(str3) && oConvertUtils.isNotEmpty(str2)) {
                /*  65 */
                e e = new e(str1, str3);
                /*  66 */
                arrayList2.add(e);
                /*     */
            }
            /*     */
            /*     */
            /*  70 */
            if (1 != onlCgformField.getIsShowList().intValue()) {
                /*     */
                continue;
                /*     */
            }
            /*     */
            /*     */
            /*  75 */  //     if ("id".equals(str1)) {
            /*     */    //     continue;
            /*     */      // }
            /*     */
            /*  79 */
            if (list1.contains(str1)) {
                /*     */
                continue;
                /*     */
            }
            /*     */
            /*  83 */
            c c = new c(onlCgformField.getDbFieldTxt(), str1);
            /*  84 */
            String str4 = onlCgformField.getDictField();
            /*  85 */
            String str5 = onlCgformField.getFieldShowType();
            /*     */
            /*  87 */
            if (oConvertUtils.isNotEmpty(str4) && !"popup".equals(str5)) {
                /*  88 */
                List list3 = new ArrayList();
                /*     */
                /*  90 */
                if (oConvertUtils.isNotEmpty(onlCgformField.getDictTable())) {
                    /*  91 */
                    List list4 = this.sysBaseAPI.queryTableDictItemsByCode(onlCgformField.getDictTable(), onlCgformField.getDictText(), str4);
                    /*  92 */
                } else if (oConvertUtils.isNotEmpty(onlCgformField.getDictField())) {
                    /*  93 */
                    list3 = this.sysBaseAPI.queryDictItemsByCode(str4);
                    /*     */
                }
                /*  95 */
                hashMap.put(str1, list3);
                /*  96 */
                c.setCustomRender(str1);
                /*     */
            }
            /*     */
            /*  99 */
            if ("sel_tree".equals(str5)) {
                /*     */
                /* 101 */
                String[] arrayOfString = onlCgformField.getDictText().split(",");
                /* 102 */
                List list3 = this.sysBaseAPI.queryTableDictItemsByCode(onlCgformField.getDictTable(), arrayOfString[2], arrayOfString[0]);
                /* 103 */
                hashMap.put(str1, list3);
                /* 104 */
                c.setCustomRender(str1);
                /*     */
            }
            /*     */
            /* 107 */
            if ("cat_tree".equals(str5)) {
                /*     */
                /* 109 */
                String str7 = onlCgformField.getDictText();
                /* 110 */
                if (oConvertUtils.isEmpty(str7)) {
                    /*     */
                    /* 112 */
                    String str8 = b.d(onlCgformField.getDictField());
                    /* 113 */
                    List list3 = this.sysBaseAPI.queryFilterTableDictInfo("SYS_CATEGORY", "NAME", "ID", str8);
                    /* 114 */
                    hashMap.put(str1, list3);
                    /* 115 */
                    c.setCustomRender(str1);
                    /*     */
                } else {
                    /*     */
                    /* 118 */
                    c.setCustomRender("_replace_text_" + str7);
                    /*     */
                }
                /*     */
            }
            /*     */
            /*     */
            /* 123 */
            if ("sel_depart".equals(str5)) {
                /* 124 */
                List list3 = this.sysBaseAPI.queryAllDepartBackDictModel();
                /* 125 */
                hashMap.put(str1, list3);
                /* 126 */
                c.setCustomRender(str1);
                /*     */
            }
            /*     */
            /*     */
            /*     */
            /*     */
            /*     */
            /*     */
            /*     */
            /*     */
            /*     */
            /* 137 */
            if (str5.indexOf("file") >= 0) {
                /* 138 */
                c.setScopedSlots(new f("fileSlot"));
                /* 139 */
            } else if (str5.indexOf("image") >= 0) {
                /* 140 */
                c.setScopedSlots(new f("imgSlot"));
                /* 141 */
            } else if (str5.indexOf("editor") >= 0) {
                /* 142 */
                c.setScopedSlots(new f("htmlSlot"));
                /* 143 */
            } else if ("date".equals("date")) {
                /* 144 */
                c.setScopedSlots(new f("dateSlot"));
                /*     */
            }
            /*     */
            /* 147 */
            if (StringUtils.isNotBlank(onlCgformField.getFieldHref())) {
                /* 148 */
                String str7 = "fieldHref_" + str1;
                /* 149 */
                c.setScopedSlots(new f(str7));
                /*     */
                /* 151 */
                JSONObject jSONObject = new JSONObject();
                /* 152 */
                jSONObject.put("slotName", str7);
                /* 153 */
                jSONObject.put("href", onlCgformField.getFieldHref());
                /* 154 */
                arrayList1.add(new a(str7, onlCgformField.getFieldHref()));
                /*     */
            }
            /*     */
            /* 157 */
            String str6 = onlCgformField.getDbType();
            /* 158 */
            if ("int".equals(str6) || "double".equals(str6) || "BigDecimal".equals(str6) || "Date".equals(str6)) {
                /* 159 */
                c.setSorter(true);
                /*     */
            }
            /* 161 */
            arrayList.add(c);
            /*     */
        }
        /*     */
        /* 164 */
        d d = new d();
        /* 165 */
        d.setCode(str);
        /* 166 */
        d.setTableType(head.getTableType());
        /* 167 */
        d.setFormTemplate(head.getFormTemplate());
        /* 168 */
        d.setDescription(head.getTableTxt());
        /* 169 */
        d.setCurrentTableName(head.getTableName());
        /* 170 */
        d.setPaginationFlag(head.getIsPage());
        /* 171 */
        d.setCheckboxFlag(head.getIsCheckbox());
        /* 172 */
        d.setScrollFlag(head.getScroll().intValue());
        /*     */
        /* 174 */
        d.setColumns(arrayList);
        /* 175 */
        d.setDictOptions(hashMap);
        /*     */
        /*     */
        /* 178 */
        d.setFieldHrefSlots(arrayList1);
        /*     */
        /*     */
        /* 181 */
        d.setForeignKeys(arrayList2);
        /*     */
        /*     */
        /* 184 */
        d.setHideColumns(list1);
        /*     */
        /*     */
        /* 187 */
        List list2 = this.onlCgformHeadService.queryButtonList(str, true);
        /* 188 */
        ArrayList<OnlCgformButton> arrayList3 = new ArrayList();
        Iterator var23 = list2.iterator();

        while (var23.hasNext()) {
            OnlCgformButton var25 = (OnlCgformButton) var23.next();
            if (!list1.contains(var25.getButtonCode())) {
                arrayList3.add(var25);
            }
        }

        /* 195 */
        d.setCgButtonList(arrayList3);
        /*     */
        /*     */
        /* 198 */
        OnlCgformEnhanceJs onlCgformEnhanceJs = this.onlCgformHeadService.queryEnhanceJs(str, "list");
        /* 199 */
        if (onlCgformEnhanceJs != null && oConvertUtils.isNotEmpty(onlCgformEnhanceJs.getCgJs())) {
            /* 200 */
            String str1 = EnhanceJsUtil.b(onlCgformEnhanceJs.getCgJs(), list2);
            /* 201 */
            d.setEnhanceJs(str1);
            /*     */
        }
        /*     */
        /*     */
        /* 205 */
        if ("Y".equals(head.getIsTree())) {
            /* 206 */
            d.setPidField(head.getTreeParentIdField());
            /* 207 */
            d.setHasChildrenField(head.getTreeIdField());
            /* 208 */
            d.setTextField(head.getTreeFieldname());
            /*     */
        }
        /*     */
        /* 211 */
        return d;
        /*     */
    }

    /*     */
    /*     */
    /*     */
    /*     */
    public JSONObject queryOnlineFormObj(OnlCgformHead head, OnlCgformEnhanceJs onlCgformEnhanceJs) {
        /* 217 */
        JSONObject jSONObject1 = new JSONObject();
        /* 218 */
        String str = head.getId();
        /*     */
        /* 220 */
        List list1 = this.onlCgformFieldService.queryAvailableFields(head.getId(), head.getTableName(), null, false);
        /*     */
        /* 222 */
        List list2 = this.onlCgformFieldService.queryDisabledFields(head.getTableName());
        /*     */
        /* 224 */
        EnhanceJsUtil.a(onlCgformEnhanceJs, head.getTableName(), list1, true);
        /*     */
        /* 226 */
        org.jeecg.modules.online.cgform.model.g g1 = null;
        /* 227 */
        if ("Y".equals(head.getIsTree())) {
            /* 228 */
            g1 = new org.jeecg.modules.online.cgform.model.g();
            /* 229 */
            g1.setCodeField("id");
            /* 230 */
            g1.setFieldName(head.getTreeParentIdField());
            /* 231 */
            g1.setPidField(head.getTreeParentIdField());
            /* 232 */
            g1.setPidValue("0");
            /* 233 */
            g1.setHsaChildField(head.getTreeIdField());
            /* 234 */
            g1.setTableName(head.getTableName());
            /* 235 */
            g1.setTextField(head.getTreeFieldname());
            /*     */
        }
        /*     */
        /* 238 */
        JSONObject jSONObject2 = b.a(list1, list2, g1);
        /* 239 */
        jSONObject2.put("table", head.getTableName());
        /*     */
        /* 241 */
        jSONObject1.put("schema", jSONObject2);
        /*     */
        /* 243 */
        jSONObject1.put("head", head);
        /*     */
        /*     */
        /* 246 */
        List list3 = this.onlCgformHeadService.queryButtonList(str, false);
        /* 247 */
        if (list3 != null && list3.size() > 0) {
            /* 248 */
            jSONObject1.put("cgButtonList", list3);
            /*     */
        }
        /*     */
        /* 251 */
        if (onlCgformEnhanceJs != null && oConvertUtils.isNotEmpty(onlCgformEnhanceJs.getCgJs())) {
            /* 252 */
            jSONObject1.put("enhanceJs", EnhanceJsUtil.b(onlCgformEnhanceJs.getCgJs(), list3));
            /*     */
        }
        /* 254 */
        return jSONObject1;
        /*     */
    }

    /*     */
    /*     */
    /*     */
    public JSONObject queryOnlineFormObj(OnlCgformHead head) {
        /* 259 */
        OnlCgformEnhanceJs onlCgformEnhanceJs = this.onlCgformHeadService.queryEnhanceJs(head.getId(), "form");
        /* 260 */
        return queryOnlineFormObj(head, onlCgformEnhanceJs);
        /*     */
    }

    /*     */
    /*     */
    /*     */
    /*     */
    /*     */
    /*     */
    /*     */
    private List<OnlCgformField> a(String paramString) {
        /* 269 */
        LambdaQueryWrapper<OnlCgformField> lambdaQueryWrapper = new QueryWrapper().lambda();
        /* 270 */
        lambdaQueryWrapper.eq(OnlCgformField::getCgformHeadId, paramString);
        /*     */
        /* 272 */
        lambdaQueryWrapper.orderByAsc(OnlCgformField::getOrderNum);
        /* 273 */
        return this.onlCgformFieldService.list((Wrapper) lambdaQueryWrapper);
        /*     */
    }

}
